#ifndef __GRAMMARNODE_H_
#define __GRAMMARNODE_H_
#include "KLib.h"
#include "NonCopyable.h"
SK

class GrammarNode;
typedef std::vector <GrammarNode*>ChildGrammerNodes;

typedef enum _GrammerNodeType
{
    GRAMMAR_REQUIRED,
    GRAMMAR_OPTIONAL,
    GRAMMAR_VARIABLE
}GrammarType;

class GrammarNode : public NonCopyable
{
public:
    GrammarNode ();
    GrammarNode (const String& command, GrammarType type);
    virtual ~GrammarNode();
    String command;
    GrammarType type;
    ChildGrammerNodes children;

    GrammarNode *addChild (GrammarNode *child);

};


EK
#endif